package com.zimmur.service.account;

import java.util.List;

import com.zimmur.common.AppModuleEnum;
import com.zimmur.model.account.UserMessage;
import com.zimmur.model.account.UserMessageParameter;
import com.zimmur.model.account.view.UserMessageView;
import com.zimmur.tools.PageUtil;

public interface IUserMessageService {
	public boolean userMessageRead(Long userId,Long messageId);
	public UserMessage selectById(Long userId,Long messageId);
	/**
	 * 获取分页消息
	 * @param userId
	 * @param curPage
	 * @param pageSize
	 * @param moduleEnum
	 * @return
	 */
	public UserMessageParameter selectByPage(long userId,int curPage,int pageSize,Integer isRead,AppModuleEnum moduleEnum);
	/**
	 * 获取系统未读消息
	 * @param userId
	 * @return
	 */
	public int getNoneSystemNum(long userId);
	
	public List<UserMessage> selectNonePushList();
	
	public boolean updateMessagePushStatusByIds(List<UserMessage> list);
	/**
	 * 更新单个用户消息已读状态
	 * @param userMessage
	 * @return
	 */
	public boolean updateReadStatus(UserMessage userMessage);
	
	/**
	 * 获取当前未读消息数
	 * @param userId
	 * @return
	 */
	public int countUserNoneReadNum(long userId);
	/**
	 * 增加新消息
	 * @param message
	 * @return
	 */
	public boolean addNewMessage(UserMessage message);
	/**
	 * 发送消息
	 * @param fromUser 发送用户ID
	 * @param toUserId 接收用户ID
	 * @param title  标题
	 * @param content 消息内容
	 * @param categoryCode 消息类型
	 * @param moduleId 模块ID
	 * @return
	 */
	public boolean sendMessage(long fromUser,long toUserId,String title,String content,String dataId,String categoryCode,int moduleId);
	/**
	 * 按页码查询用户消息
	 * @param userId
	 * @param categoryCode
	 * @param pageNow
	 * @return
	 */
	public PageUtil<UserMessageView> selectMessageByUserIdAndCategoryCode(long userId,String categoryCode,Integer pageNow);
	/**
	 * 批量添加用户消息
	 * @param userMessages
	 * @return
	 */
	public int addMessageList(List<UserMessage> userMessages);
	
	 
}
